package com.sff.site.core {
	
	import flash.events.IEventDispatcher;
	import flash.net.URLVariables;	

	public interface INode extends IEventDispatcher {

		function isActive() : Boolean;

		function activate( params : URLVariables = null ) : void;

		function getId() : String;
		
		function getCurrentChild() : INode;

		function getChilds() : Array;
		
		function getChild( id : String ) : INode;

		function hasChild( id : String ) : Boolean;
		
		function addChild( node : INode ) : INode;

		function path( getDefaults : Boolean = false  ) : IPath;

		function parent( ) : INode;

		function stringify( indent : int = 0 ) : String;
		
		function getParams() : URLVariables;

		function setParams( params : URLVariables ) : void;
		
		function getDefaultNode() : INode;
		
		function getDefaultId() : String;

	}
}
